home *** CD-ROM | disk | FTP | other *** search
/ Experimental BBS Explossion 3 / Experimental BBS Explossion III.iso / gus / vts139b.zip / FILEUTIL.PAS < prev    next >
Pascal/Delphi Source File  |  1993-04-24  |  4KB  |  189 lines

  1. {****************************************************************************}
  2. {                                                                            }
  3. { MODULE:         FileUtil                                                   }
  4. {                                                                            }
  5. { DESCRIPTION:    Several file handling utilities. Enhancement of the Dos    }
  6. {                 UNIT.                                                      }
  7. {                                                                            }
  8. { AUTHOR:         Juan Carlos Arévalo                                        }
  9. {                                                                            }
  10. { MODIFICATIONS:  Nobody (yet ;-)                                            }
  11. {                                                                            }
  12. { HISTORY:        03-Nov-1992 Creation                                       }
  13. {                 17-Jan-1993 SaveFile, LoadFile, MakePath.                  }
  14. {                                                                            }
  15. { (C) 1992,93 VangeliSTeam                                                   }
  16. {____________________________________________________________________________}
  17.  
  18. UNIT FileUtil;
  19.  
  20. {$I-}
  21.  
  22. INTERFACE
  23.  
  24. USES Dos;
  25.  
  26.  
  27.  
  28.  
  29. PROCEDURE AddBar2Path  (VAR Path: PathStr);
  30. PROCEDURE KillBar2Path (VAR Path: PathStr);
  31.  
  32. FUNCTION  FileExists (f: PathStr) : BOOLEAN;
  33. PROCEDURE DeleteFiles(FName: PathStr);
  34.  
  35. PROCEDURE MakePath   (f: PathStr);
  36.  
  37. FUNCTION  SaveFile(FName: PathStr; VAR Buffer; Size: WORD) : WORD;
  38. FUNCTION  LoadFile(FName: PathStr; VAR Buffer; Size: WORD) : WORD;
  39.  
  40.  
  41.  
  42.  
  43. IMPLEMENTATION
  44.  
  45.  
  46.  
  47.  
  48. PROCEDURE AddBar2Path  (VAR Path: PathStr);
  49.   BEGIN
  50.  
  51.     CASE Path[Length(Path)] OF
  52.       ':',
  53.       '\',
  54.       '/': ;
  55.     ELSE
  56.       Path[Length(Path)+1] := '\';
  57.       INC(Path[0]);
  58.     END;
  59.  
  60.   END;
  61.  
  62.  
  63. PROCEDURE KillBar2Path (VAR Path: PathStr);
  64.   BEGIN
  65.  
  66.     CASE Path[Length(Path)] OF
  67.       '\',
  68.       '/': IF NOT ((Length(Path) > 2) AND (Path[Length(Path)-1] = ':')) THEN
  69.              DEC(Path[0]);
  70.     END;
  71.  
  72.   END;
  73.  
  74.  
  75.  
  76.  
  77. FUNCTION FileExists(f: PathStr) : BOOLEAN;
  78.   VAR
  79.     i   : WORD;
  80.     Fil : FILE;
  81.   BEGIN
  82.     Assign(Fil, f);
  83.     GetFAttr(Fil, i);
  84.     FileExists := DosError = 0;
  85.   END;
  86.  
  87.  
  88. PROCEDURE DeleteFiles(FName: PathStr);
  89.   VAR
  90.     i    : WORD;
  91.     f    : FILE;
  92.     s    : SearchRec;
  93.     Dir  : DirStr;
  94.     Name : NameStr;
  95.     Ext  : ExtStr;
  96.   BEGIN
  97.  
  98.     FSplit(Fname, Dir, Name, Ext);
  99.  
  100.     FindFirst(FName, Archive, s);
  101.  
  102.     WHILE (DosError = 0) DO
  103.       BEGIN
  104.         Assign(f, Dir+s.Name);
  105.         Erase(f);
  106.         FindNext(s);
  107.       END;
  108.  
  109.   END;
  110.  
  111.  
  112.  
  113.  
  114. PROCEDURE MakePath(f: PathStr);
  115.   CONST
  116.     Dir  : DirStr  = '';
  117.     Name : NameStr = '';
  118.     Ext  : ExtStr  = '';
  119.     i    : WORD    = 0;
  120.   BEGIN
  121.  
  122.     KillBar2Path(f);
  123.  
  124.     f := FExpand(f);
  125.  
  126.     FSplit(f, Dir, Name, Ext);
  127.     IF Name = '' THEN
  128.       EXIT
  129.     ELSE
  130.       BEGIN
  131.         KillBar2Path(Dir);
  132.         MakePath(Dir);
  133.         FSplit(f, Dir, Name, Ext);
  134.         MkDir(f);
  135.         i := IOResult;
  136.       END;
  137.  
  138.   END;
  139.  
  140.  
  141.  
  142.  
  143. FUNCTION SaveFile(FName: PathStr; VAR Buffer; Size: WORD) : WORD;
  144.   VAR
  145.     f : FILE;
  146.     w : WORD;
  147.   BEGIN
  148.     w := 0;
  149.  
  150.     Assign(f, FName);
  151.     Rewrite(f, 1);
  152.  
  153.     IF IOResult = 0 THEN
  154.       BEGIN
  155.         BlockWrite(f, Buffer, Size, w);
  156.         Close(f);
  157.       END;
  158.  
  159.     SaveFile := w;
  160.  
  161.     w := IOResult;
  162.   END;
  163.  
  164.  
  165. FUNCTION LoadFile(FName: PathStr; VAR Buffer; Size: WORD) : WORD;
  166.   VAR
  167.     f : FILE;
  168.     w : WORD;
  169.   BEGIN
  170.     w := 0;
  171.  
  172.     Assign(f, FName);
  173.     Reset(f, 1);
  174.  
  175.     IF IOResult = 0 THEN
  176.       BEGIN
  177.         BlockRead(f, Buffer, Size, w);
  178.         Close(f);
  179.       END;
  180.  
  181.     LoadFile := w;
  182.  
  183.     w := IOResult;
  184.   END;
  185.  
  186.  
  187.  
  188.  
  189. END.